'\" te
.\"  Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved
.\" Copyright (c) 2015, Joyent, Inc.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH BSTRING 3C "Dec 31, 2014"
.SH NAME
bstring, bcopy, bcmp, bzero, explicit_bzero \- memory operations
.SH SYNOPSIS
.LP
.nf
#include <strings.h>

\fBvoid\fR \fBbcopy\fR(\fBconst void *\fR\fIs1\fR, \fBvoid *\fR\fIs2\fR, \fBsize_t\fR \fIn\fR);
.fi

.LP
.nf
\fBint\fR \fBbcmp\fR(\fBconst void *\fR\fIs1\fR, \fBconst void *\fR\fIs2\fR, \fBsize_t\fR \fIn\fR);
.fi

.LP
.nf
\fBvoid\fR \fBbzero\fR(\fBvoid *\fR\fIs\fR, \fBsize_t\fR \fIn\fR);
.fi

.LP
.nf
\fBvoid\fR \fBexplicit_bzero\fR(\fBvoid *\fR\fIs\fR, \fBsize_t\fR \fIn\fR);
.fi

.SH DESCRIPTION
.LP
The  \fBbcopy()\fR, \fBbcmp()\fR, and \fBbzero()\fR functions operate as
efficiently as possible on memory areas (arrays of bytes bounded by a count,
not terminated by a null character).  They do not check for  the  overflow  of
any receiving memory area.  These functions are similar to the \fBmemcpy()\fR,
\fBmemcmp()\fR, and \fBmemset()\fR functions described on the \fBmemory\fR(3C)
manual page.
.sp
.LP
The \fBbcopy()\fR function copies \fIn\fR bytes from memory area \fIs1\fR to
\fIs2\fR. Copying between objects that overlap will take place correctly.
.sp
.LP
The \fBbcmp()\fR function compares the first \fIn\fR bytes of its arguments,
returning 0 if they are identical and 1 otherwise. The \fBbcmp()\fR function
always returns 0 when \fIn\fR is 0.
.sp
.LP
The \fBbzero()\fR function sets the first \fIn\fR bytes in memory area \fIs\fR
to 0.
.sp
.LP
The \fBexplicit_bzero()\fR function behaves the same as \fBbzero()\fR, except it
should not be removed by the compiler's optimization passes.
.SH WARNINGS
.LP
The \fBbcopy()\fR and \fBexplicit_bzero()\fR functions take parameters backwards
from \fBmemcmp()\fR.  See \fBmemory\fR(3C).
.SH ATTRIBUTES
.LP
See \fBattributes\fR(7) for descriptions of the following attributes:
.sp

.sp
.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
_
Interface Stability	See NOTES
_
MT-Level	MT-Safe
.TE

.SH SEE ALSO
.LP
.BR memory (3C),
.BR attributes (7),
.BR standards (7)
.SH NOTES
.LP
\fBbcopy\fR(), \fBbcmp\fR(), and \fBbzero\fR() are \fBSTANDARD\fR.
\fBexplicit_bzero\fR() is \fBCOMMITTED\fR.
